// Copyright 2007-2010 Comdiv (F. Sadykov) - http://code.google.com/u/fagim.sadykov/
// Supported by Media Technology LTD 
//  
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//  
//      http://www.apache.org/licenses/LICENSE-2.0
//  
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// 
// MODIFICATIONS HAVE BEEN MADE TO THIS FILE
using System;
using Comdiv.Design;

namespace Comdiv.Common{
    [Fluent]
    public static class WithProcessedInfoFluentExtensions
    {
        public static T error<T>(this T withProcessInfo,Exception ex) where T : IWithProcessedInfo
        {
            withProcessInfo.IsFinished = false;
            withProcessInfo.Error = ex;
            return withProcessInfo;
        }
        public static T finish<T>(this T withProcessInfo) where T :  IWithProcessedInfo
        {
            withProcessInfo.IsFinished = true;
            return withProcessInfo;
        }
    }
    public interface IWithProcessedInfo{
        bool IsFinished { get; set; }
        Exception Error { get; set; }
    }
}